Try h264 on intel and AMD hardware using VA-API, using vapostproc
to do the color conversion using specialized hardware. We're not adding
a vaapi pipeline using the color conversion GL shader here, as vapostproc
color conversion should be better suited for anything needed by vaapi
based encoders/decoders.
A capsfilter is used to enforce the use of DMAbuf (memory:DMABuf) with
the new explicit modifier API (format=DMA_DRM).
Also, we're using the new va* gst elements instead of the vaapi* ones
here, as the vaapi* elements are deprecated, while the va* elements are
actively maintained.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2080>
const PIPELINE_BLOCKLIST_FILENAME = 'gnome-shell-screencast-pipeline-blocklist';
const PIPELINES = [
+ {
+ id: 'hwenc-dmabuf-h264-vaapi',
+ fileExtension: 'mp4',
+ pipelineString:
+ 'capsfilter caps=video/x-raw(memory:DMABuf),format=DMA_DRM,max-framerate=%F/1 ! \
+ vapostproc ! \
+ vah264enc ! \
+ queue ! \
+ h264parse ! \
+ mp4mux fragment-duration=500 fragment-mode=first-moov-then-finalise',
+ },
{
id: 'swenc-dmabuf-h264-openh264',
fileExtension: 'mp4',